package com.sdp.flow.db.service;

import java.util.List;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sdp.flow.db.entity.ActHiComment;
import com.sdp.flow.dto.FlowParam;
import com.sdp.flow.dto.TodoTaskView;

public interface IWorkflowService {

	String startFlow(FlowParam flowParam);
	
	String startFlowAndCommit(FlowParam flowParam);
	
	void stopFlow(String instanceId, String reason);
	
	void claimTask(String taskId, String userId);
	
	void unclaimTask(String taskId);
	
	void commitTask(FlowParam flowParam);
	
	List<TodoTaskView> getTodoTaskListByUserId(String systemNo, String userId);
	
	IPage<TodoTaskView> getTodoTaskPageByUserId(String systemNo, String userId, Integer pageNum, Integer pageSize);
	
	TodoTaskView getTodoTaskByTaskId(String taskId);
	
	List<ActHiComment> getApprovedOpinion(String instanceId, String type);
	
	List<ActHiComment> getApprovedOpinion(String instanceId);
	
	List<ActHiComment> getApprovedOpinionNew(String instanceId);
	
	void setApprovedOpinion(List<ActHiComment> options);
	
	List<JSONObject> getNextFlowNode(String taskId);
	
	String getCurrentNode(String taskId);
	
	
	
}
